d80db05febc37e9a47a7112229358b80130c857d,hazelcast/src/test/java/com/hazelcast/map/impl/nearcache/invalidation/InvalidationMemberAddRemoveTest.java,InvalidationMemberAddRemoveTest,ensure_nearCached_and_actual_data_sync_eventually,#,77
Before Change
putFromMember.start();
populateClientNearCache.start();
clearFromMember.start();
shadowMember.start();
// stress system some seconds
sleepSeconds(60);
//stop threads
stopTest.set(true);
shadowMember.join();
clearFromMember.join();
populateClientNearCache.join();
putFromMember.join();
After Change
List<Thread> threads = new ArrayList<Thread>();
// continuously adds and removes member
Thread shadowMember = new Thread(new Runnable() {
@Override
public void run() {
while (!stopTest.get()) {
HazelcastInstance member = factory.newHazelcastInstance(config);
sleepSeconds(5);
member.getLifecycleService().terminate();
}
}
});
threads.add(shadowMember);
// populates client near-cache
Thread populateClientNearCache = new Thread(new Runnable() {
public void run() {
while (!stopTest.get()) {
for (int i = 0; i < KEY_COUNT; i++) {
nearCachedMap.get(i);
}
}
}
});
threads.add(populateClientNearCache);
// updates map data from member.
Thread putFromMember = new Thread(new Runnable() {
public void run() {
while (!stopTest.get()) {
int key = getInt(KEY_COUNT);
int value = getInt(Integer.MAX_VALUE);
memberMap.put(key, value);
sleepAtLeastMillis(5);
}
}
});
threads.add(putFromMember);
Thread clearFromMember = new Thread(new Runnable() {
public void run() {
while (!stopTest.get()) {
memberMap.clear();
sleepSeconds(5);
}
}
});
threads.add(clearFromMember);
// start threads
for (Thread thread : threads) {
thread.start();
}
// stress system some seconds
sleepSeconds(TEST_RUN_SECONDS);
//stop threads
stopTest.set(true);
for (Thread thread : threads) {
thread.join();
}